﻿<%@ WebHandler Language="C#" Class="controller" %>

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;

public class controller : IHttpHandler {

	public void ProcessRequest(HttpContext context) {
		context.Response.ContentType = "text/plain";
		Handler action = null;
		switch (context.Request["action"]) {
			case "config":
				action = new ConfigHandler(context);
				break;
			case "uploadimage":
				//action = new UploadHandler(context, new UploadConfig() {
				//  AllowExtensions = Config.GetStringList("imageAllowFiles"),
				//  PathFormat = Config.GetString("imagePathFormat"),
				//  SizeLimit = Config.GetInt("imageMaxSize"),
				//  UploadFieldName = Config.GetString("imageFieldName")
				//});
				action = new UploadHandler(context, new UploadConfig(
						Config.GetStringList("imageAllowFiles"),
						Config.GetString("imagePathFormat"),
						Config.GetInt("imageMaxSize"),
						Config.GetString("imageFieldName")
					)
				);
				break;
			case "uploadscrawl":
				//action = new UploadHandler(context, new UploadConfig() {
				//  AllowExtensions = new string[] { ".png" },
				//  PathFormat = Config.GetString("scrawlPathFormat"),
				//  SizeLimit = Config.GetInt("scrawlMaxSize"),
				//  UploadFieldName = Config.GetString("scrawlFieldName"),
				//  Base64 = true,
				//  Base64Filename = "scrawl.png"
				//});
				action = new UploadHandler(context, new UploadConfig(
						new string[]{".png"},
						Config.GetString("scrawlPathFormat"),
						Config.GetInt("scrawlMaxSize"),
						Config.GetString("scrawlFieldName"),
						true,
						"scrawl.png"
					)
				);
				break;
			case "uploadvideo":
				//action = new UploadHandler(context, new UploadConfig() {
				//  AllowExtensions = Config.GetStringList("videoAllowFiles"),
				//  PathFormat = Config.GetString("videoPathFormat"),
				//  SizeLimit = Config.GetInt("videoMaxSize"),
				//  UploadFieldName = Config.GetString("videoFieldName")
				//});
				action = new UploadHandler(context, new UploadConfig(
						Config.GetStringList("videoAllowFiles"),
						Config.GetString("videoPathFormat"),
						Config.GetInt("videoMaxSize"),
						Config.GetString("videoFieldName")
					)
				);
				break;
			case "uploadfile":
				//action = new UploadHandler(context, new UploadConfig() {
				//  AllowExtensions = Config.GetStringList("fileAllowFiles"),
				//  PathFormat = Config.GetString("filePathFormat"),
				//  SizeLimit = Config.GetInt("fileMaxSize"),
				//  UploadFieldName = Config.GetString("fileFieldName")
				//});
				action = new UploadHandler(context, new UploadConfig(
						Config.GetStringList("fileAllowFiles"),
						Config.GetString("filePathFormat"),
						Config.GetInt("fileMaxSize"),
						Config.GetString("fileFieldName")
					)
				);
				break;
			case "listimage":
				action = new ListFileManager(context, Config.GetString("imageManagerListPath"), Config.GetStringList("imageManagerAllowFiles"));
				break;
			case "listfile":
				action = new ListFileManager(context, Config.GetString("fileManagerListPath"), Config.GetStringList("fileManagerAllowFiles"));
				break;
			case "catchimage":
				//action = new CrawlerHandler(context);
				break;
			default:
				//action = new NotSupportedHandler(context);
				break;
		}
		action.Process();
	}

	public bool IsReusable {get {return false;}}
}

